/**
 * Universita' degli Studi di Palermo, 2010-11, License GNU GPL 3 (http://www.gnu.org/licenses/gpl.html)
 */
package org.unipa.botplatform.bot;

/**
 * A BotContext contains the reference beans for instantiating a bot inside the <code>Core</code>. 
 * <br> <br>
 * A bot context is intended as a 
 * collection of (A) a bot manager, implementing <code>Bot</code> interface, (B) a session manager, 
 * implementing <code>Session</code> interface, (C) 
 * a planner, implementing <code>Planner</code> interface. 
 * <br> <br>
 * If you want to create a new type of bot manager and\or session and\or planner, you have to:
 * <li>create the
 * implementation classes, 
 * <li>add beans references in the beans file (typically <code>beans.xml</code>),
 * <li>and finally add your bot(s) to the bots 
 * definition file (typically <code>bots.xml</code>). 
 * <br>(beans and bots definition file paths are declared in the setting file of the core). 
 * <br> <br>
 * It's perfectly possible to mix various implementation, included the provided Simple one of the 
 * <code>org.unipa.cc.model.simple</code> package (that is you can add a new bot manager for a new kind 
 * of bot and use session and planner of the Simple package). 
 * Behavioral and programming coherence it's up to you.
 * 
 * @author Giuseppe Miceli
 *
 */
public class BotContext {

	/** bean id of the class implementing the bot manager interface for this bot */
	private String botBean;

	/** bean id of the class implementing the planner interface for this bot*/
	private String plannerBean;

	/** bean id of the class implementing the session manager interface for this bot*/
	private String sessionBean;

	/**
	 * @return the botBean
	 */
	public String getBotBean() {
		return botBean;
	}
	/**
	 * @return the plannerBean
	 */
	public String getPlannerBean() {
		return plannerBean;
	}
	/**
	 * @return the sessionBean
	 */
	public String getSessionBean() {
		return sessionBean;
	}
	/**
	 * @param botBean the botBean to set
	 */
	public void setBotBean(String botBean) {
		this.botBean = botBean;
	}
	/**
	 * @param plannerBean the plannerBean to set
	 */
	public void setPlannerBean(String plannerBean) {
		this.plannerBean = plannerBean;
	}
	/**
	 * @param sessionBean the sessionBean to set
	 */
	public void setSessionBean(String sessionBean) {
		this.sessionBean = sessionBean;
	}
}